package copy

import (
	"os"
	"path/filepath"
)

// 立刻返回
// 信息获取失败的将纪录到总量中
func (self *Copyer) Count() {
	self.IsDoing = true

	f := func(path string, info os.FileInfo, err error) error {
		if err == nil {
			self.doingName = info.Name()
			self.totalCount++
			self.totalSize += info.Size()
		}
		// 计算时不做错误处理， 在移动时提示
		return nil
	}

	go func() {
		for _, item := range self.items {
			filepath.Walk(filepath.Join(self.srcDir, item), f)
		}
		self.IsDoing = false
	}()
}

// 获取需要复制内容的详情
// 计算到的大小，数量，当前文件名称，
func (self *Copyer) GetCountingInfo() (count, size int64, name string) {
	return self.totalCount, self.totalSize, self.doingName
}
